MARX: Uncovering Class Hierarchies in C++ Programs

نویسندگان

  • Andre Pawlowski
  • Moritz Contag
  • Victor van der Veen
  • Chris Ouwehand
  • Thorsten Holz
  • Herbert Bos
  • Elias Athanasopoulos
  • Cristiano Giuffrida
چکیده

Reverse engineering of binary executables is a difficult task which gets more involved by the way compilers translate high-level concepts used in paradigms such as objectoriented programming into native code, as it is the case for C++. Such code is harder to grasp than, e. g., traditional procedural code, since it is generally more verbose and adds complexity through features such as polymorphism or inheritance. Hence, a deep understanding of interactions between instantiated objects, their corresponding classes, and the connection between classes would vastly reduce the time it takes an analyst to understand the application. The growth in complexity in contemporary C++ applications only amplifies the effect. In this paper, we introduce Marx, an analysis framework to reconstruct class hierarchies of C++ programs and resolve virtual callsites. We have evaluated the results on a diverse set of large, real-world applications. Our experimental results show that our approach achieves a high precision (93.2% of the hierarchies reconstructed accurately for Node.js, 88.4% for MySQL Server) while keeping analysis times practical. Furthermore, we show that, despite any imprecision in the analysis, the derived information can be reliably used in classic software security hardening applications without breaking programs. We showcase this property for two applications built on top of the output of our framework: vtable protection and type-safe object reuse. This demonstrates that, in addition to traditional reverse engineering applications, Marx can aid in implementing concrete, valuable tools e. g., in the domain of exploit mitigations.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

The BIAS FREE Framework

Objective: To test the applicability of the BIAS FREE Framework in African settings. Participants: Researchers from the Tanzanian National Institute for Medical Research, university and community-based researchers from Tanzania, the Gambia and South Africa. Setting: National Institute for Medical Research, Dar es Salaam Tanzania. Intervention: An intensive two-day workshop to examine the applic...

متن کامل

A Study on the Value Systems of the Fourth Region of the I.A.U

This paper aims to study and examine the value systems among the students region of Islamic Azad universities. The population includes all students in academic year 2008-9 among whom 400 ones were selected from 10 universities as a sample. The students' value hierarchies were examined using Alpourt 45- item questionnaire(A.V.L). Descriptive and t-inferential statistics and multivariate variance...

متن کامل

Eliminating Cycles in Composed Class Hierarchies

Multiple class hierarchies can be used each to represent a separate requirement or design concern. To yield a working system, these disparate hierarchies must be composed in a semantically meaningful way. However, cycles can arise in the composed inheritance graph that restrict the space of composable hierarchies. This work presents an approach to eliminating these cycles by means of separating...

متن کامل

Base Class Injection

Class hierarchies, though theoretically reusable, have generally not seen much practical reuse in applications, due in part to the inflexibility of the inheritance relationship. We present a technique, base class injection, that allows the creation of generative class hierarchies that may be adapted by adding new methods, data members, and ancestor classes without modification to the class libr...

متن کامل

How to Design Class Hierarchies

We report on the experience of teaching introductory second semester computer science course on Fundamentals of Computer Science that uses our curriculum How to Design Class Hierarchies 1 and the ProfessorJ programming langugages implemented within the DrScheme programming environment. This comprehensive curriculum for an introductory course is focused on principled design of class based progra...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2017